package com.scs.application.modules.sys.service;

import com.scs.application.core.service.IBaseService;
import com.scs.application.modules.sys.dto.FlowDTO;
import com.scs.application.modules.sys.entity.Flow;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 */
public interface FlowService extends IBaseService<Flow> {

    /**
     * 依据流程标识查找流程定义
     * @param flowKey
     * @return
     */
    Flow findByFlowKey(String flowKey);

    /**
     * 复制流程
     * @param flowKey
     * @return
     */
    Flow copy(String flowKey);

    /**
     * 是否支持
     * @param flagProject
     * @return
     */
    Boolean isSupport(Boolean flagProject);


    /**
     * 根据flowId获取flow实体类
     * @param flowId
     * @return
     */
    FlowDTO getFlowDTOById(String flowId);

    /**
     * 根据flowCode获取flow实体类
     * @param flowCode
     * @return
     */
    FlowDTO getFlowDTOByCode(String flowCode);

    /**
     * 获取DTOList
     * @return
     */
    List<FlowDTO> getDTOList();

}
